package cn.edu.qfnu.oj.dao;

import cn.edu.qfnu.common.dao.BaseDao;
import cn.edu.qfnu.common.exception.db.NoRecordFoundException;
import cn.edu.qfnu.common.exception.db.WrongParameterException;
import cn.edu.qfnu.oj.entity.Student;

/**
 * OnlineJudge of QF_NU
 * Created by LS on 2017/7/17.
 */
public interface StudentDao extends BaseDao<Student, String> {

    Student loginCheck(String username) throws NoRecordFoundException;

    /**
     * 通过邮箱查找学生，用于邮箱找回密码
     * @param email 被查询邮箱
     * @return 含此邮箱的学生
     */
    boolean isExist(String studentId, String email);

    /**
     * 验证学生记录在数据库中是否有重复记录
     * @param student 要验证的学生记录
     * @return 返回是否重复
     */
    boolean isRepeat(Student student);

    /**
     * 检验学生的用户密码 用于修改密码
     * @param studentId 学生ID
     * @param password 密码
     * @return 查到的学生
     * @throws WrongParameterException 密码错误异常
     */
    Student checkPassword(String studentId, String password) throws WrongParameterException;

}
